import { DirectiveBinding } from 'vue';
import { ElMessage } from 'element-plus';


const copyText = async (text: string) => {
    try {
      await navigator.clipboard.writeText(text);
      console.log(':', text);
      ElMessage({
        type:'success',
        message:"复制成功"
    })
    } catch (err) {
    //   console.error('复制失败:', err);
    ElMessage({
        type:'warning',
        message:"该浏览器不支持复制，请百度如何开启浏览器复制功能"
    })
    }
  };

export default {
  // 在绑定元素的 attribute 或事件监听器被应用之前调用
  beforeMount(el: any, binding: DirectiveBinding) {
    el._copyValue = binding.value;

    el.addEventListener('click', () => {
      if (el._copyValue) {
        copyText(el._copyValue);
      }
    });
  },

  // 当绑定元素的父组件及他自己的所有子节点都挂载完成时调用
  mounted(el: HTMLElement, binding: DirectiveBinding) {
    // 如果需要，也可以在此做其他初始化
  },

  // 当传入了更新后的值的时候会调用
  updated(el: any, binding: DirectiveBinding) {
    el._copyValue = binding.value;
  },

  // 当指令与元素解绑时调用
  unmounted(el: HTMLElement) {
    el.removeEventListener('click', () => {});
  }
};
